第 1 步 - 插值指南针表盘的旋转

在教程的这一步骤中,您将学习使用属性目标插值器 (Property Target Interpolator) 插值指南针表盘的旋转,随着时间的推移从当前方向插值到目标方向。

教程资产

本教程的起点资料是存储在<KanziWorkspace>/Tutorials/Interpolate/Start/Tool_project 目录中的Interpolate.kzproj Kanzi Studio 工程文件。

<KanziWorkspace>/Tutorials/Interpolate/Completed/Tool_project 目录包含本教程已完成的 Kanzi Studio 工程。

起点工程包含完成本教程所需的内容:

插值指南针表盘的旋转

在本节中,您将学习动画化指南针表盘的旋转,在行驶方向改变时,属性目标插值器 (Property Target Interpolator) 随着时间的推移将当前值插值到目标值。

属性目标插值器 (Property Target Interpolator) 模拟永远不会超调的弹簧阻尼系统的行为。您可以使用加速 (Acceleration) 属性设置弹簧移动物体所用的力,并使用阻力 (Drag) 属性设置阻尼系数。加速 (Acceleration) 属性的值越大,该属性就越快达到其新值。阻力 (Drag) 属性的值越大,最大插值速度就越小。

要插值指南针表盘的旋转:

  1. 素材库 (Library)按下 Alt 并右键点击属性类型 (Property Types),选择属性类型 (Property Type) 并在新建属性类型 (New Property Type) 窗口中设置:创建Interpolate.Interpolator 属性类型,因为您要插值数据类型为整数的Interpolate.Direction 属性。要插值数据类型不是浮点的属性,需要创建一个浮点属性类型,并将要插值的属性绑定到您创建的浮点属性。
  2. 绑定 Dial 节点的旋转到上一步中创建的属性:
    1. 工程 (Project) 中,选择 Dial 节点,在属性 (Properties) 中点击绑定 (Bindings) 现有绑定进行编辑,在绑定参数编辑器 (Binding Argument Editor)中将表达式 (Expression) 设为:
      CreateRotationZ({@./Interpolate.Interpolator})
      点击保存 (Save)
      使用绑定根据Interpolate.Interpolator 属性的值旋转Dial 节点。
    2. 属性 (Properties) 中点击+ 添加绑定 (+ Add Binding) 并在绑定参数编辑器 (Binding Argument Editor) 中设置:
      • 属性 (Property)Interpolate.Interpolator
      • 表达式 (Expression)
        {#RootPage/Interpolate.Direction}
      点击保存 (Save)
      Interpolate.Interpolator 属性绑定到用于控制旋转的RootPage 节点中的Interpolate.Direction 属性。
  3. 属性目标插值器 (Property Target Interpolator) 添加到要插值旋转的节点:
    1. 工程 (Project) 中选择Dial 节点,在节点组件 (Node Components) > 动画 (Animation) 部分点击+ 添加动画 (+ Add Animation) 并选择属性目标插值器 (Property Target Interpolator)
      使用属性目标插值器 (Property Target Interpolator),随着时间的推移将Interpolate.Interpolator 属性的值插值到目标值。您在上一步骤中创建的绑定将更改应用到Dial 节点的旋转。
    2. 节点组件 (Node Components) > 动画 (Animation) 区域的 属性目标插值器 (Property Target Interpolator) 中设置:
      • 插值属性类型 (Interpolated Property Type)Interpolate.Interpolator
      • 加速 (Acceleration) 为 5
      • 阻力 (Drag) 为 2
      属性目标插值器 (Property Target Interpolator) 模拟永远不会超调的弹簧阻尼系统的行为。您可以使用加速 (Acceleration) 属性设置弹簧移动物体所用的力,并使用阻力 (Drag) 属性设置阻尼系数。加速 (Acceleration) 属性的值越大,该属性就越快达到其新值。阻力 (Drag) 属性的值越大,最大插值速度就越小。

现在,您更改 <ProjectName>/Application/bin/Compass.xml 中的 direction XML 元素并保存文件后,属性目标插值器 (Property Target Interpolator) 会随着时间的推移将指南针表盘的旋转内插到目标值。

建议

默认只在 Kanzi Studio 窗口设定为焦点时预览 (Preview) 更新内容。要在Kanzi Studio 窗口未设定为焦点时查看 Kanzi Studio 工程中的更改,在 Kanzi Studio 中选择编辑 (Edit) > 用户首选项 (User Preferences),并在高级 (Advanced) 选项卡中启用Kanzi Studio 未聚焦时更新预览 (Update Preview when Kanzi Studio is not focused)



< 简介
下一步 >

另请参阅

插值属性值

使用绑定

使用触发器

数据源

使用状态机